מספרים עשרוניים באמצעות toStringAsFixed
חלק מהיחידה הוספת אינטראקטיביות במסלול ה-Flutter של Coddy. שיעור 26 מתוך 34.
מספר עם נקודה עשרונית הוא double. הוא נקרא מתוך טקסט באותה הדרך, באמצעות double.tryParse:
double.tryParse('2.5') ?? 0 // 2.5
int.tryParse('2.5') ?? 0 // 0: אינו מספר שלםחישובים עם מספרי double נותנים לעיתים קרובות ספרות רבות אחרי הנקודה: 5 * 0.621371 הוא 3.106855, ו-10 / 3 הוא 3.3333333333333335. כדי להציג מספר קבוע של ספרות עשרוניות, השתמשו ב-toStringAsFixed. הוא מעגל ומחזיר מחרוזת:
(10 / 3).toStringAsFixed(2) // '3.33'
3.106855.toStringAsFixed(1) // '3.1'בלוח המקשים המספרי אין נקודה עשרונית כברירת מחדל. TextInputType.numberWithOptions(decimal: true) מוסיף אותה.
אתגר
בינוניהאפליקציה ממירה קילומטרים למיילים, אבל היא קוראת רק מספרים שלמים ומציגה מספרים עשרוניים ארוכים.
- קרא את השדה באמצעות
double.tryParse, כדי שגם2.5יעבוד, והגדר את_kmכ-double. - הגדר לשדה מקלדת מספרים עם נקודה עשרונית.
- הצג את המרחק במיילים עם שתי ספרות אחרי הנקודה העשרונית:
That is 3.11 milesעבור 5 ק"מ.
נסו בעצמכם
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: const HomePage(),
);
}
}
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
int _km = 0;
@override
Widget build(BuildContext context) {
final double miles = _km * 0.621371;
return Scaffold(
appBar: AppBar(title: const Text('Distance')),
body: Padding(
padding: const EdgeInsets.all(24),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextField(
keyboardType: TextInputType.number,
decoration: const InputDecoration(
labelText: 'Kilometers',
border: OutlineInputBorder(),
),
onChanged: (String value) {
setState(() {
_km = int.tryParse(value) ?? 0;
});
},
),
const SizedBox(height: 24),
Text('That is $miles miles', style: const TextStyle(fontSize: 24)),
],
),
),
);
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה הוספת אינטראקטיביות
3Widgets עם מצב
מחלקת Widget משלךהצגת SnackBarsetState מצייר מחדש את המסךכתיבת StatefulWidgetמונה עולה ויורדHot Reload שומר על המצב6שדות טקסט
שדה הטקסט הראשון שלךלהגיב להקלדהקריאת שדה באמצעות Controllerמספרים מתוך שדה טקסטמספרים עשרוניים באמצעות toStringAsFixedתרגלו בעצמכם: קומפיילר Flutter אונליין