toStringAsFixed ile Ondalık Sayılar
Coddy'nin Flutter Journey'sinin Etkileşimli Uygulamalar bölümünün bir parçası. Ders 26 / 34.
Ondalık noktası olan bir sayı double türündedir. Metinden aynı şekilde okunur; double.tryParse kullanılır:
double.tryParse('2.5') ?? 0 // 2.5
int.tryParse('2.5') ?? 0 // 0: tam sayı değildouble türüyle yapılan hesaplamalar genellikle uzun ondalık kısımlar verir: 5 * 0.621371 sonucu 3.106855, 10 / 3 sonucu ise 3.3333333333333335 olur. Sabit sayıda ondalık basamak göstermek için toStringAsFixed kullanın. Bu yöntem yuvarlama yapar ve bir dize döndürür:
(10 / 3).toStringAsFixed(2) // '3.33'
3.106855.toStringAsFixed(1) // '3.1'Sayı klavyesinde varsayılan olarak ondalık noktası yoktur. TextInputType.numberWithOptions(decimal: true) bir ondalık noktası ekler.
Görev
OrtaUygulama kilometreleri mile dönüştürüyor, ancak yalnızca tam sayıları okuyor ve uzun ondalık sayılar gösteriyor.
- Alanı
double.tryParseile oku; böylece2.5çalışır ve_kmdeğişkeninidoubleyap. - Alan için ondalık noktalı sayı klavyesini kullan.
- Mil değerini iki ondalık basamakla göster: 5 km için
That is 3.11 miles.
Kendin dene
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)),
],
),
),
);
}
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Etkileşimli Uygulamalar bölümündeki tüm dersler
7Anahtarlar ve Kaydırıcılar
Bir Anahtarla Açıp KapatmaBir Onay Kutusunu İşaretlemeKaydırıcıyla Bir Değer Seçme3Durum Tutan Widget'lar
Kendi Widget SınıfınızSnackBar GöstermesetState Ekranı Yeniden ÇizerStatefulWidget YazmaSayacı Artırma ve AzaltmaHot Reload Durumu Korur6Metin Alanları
İlk Metin AlanınızYazı Yazmaya Tepki VerinBir Alanı Controller ile OkumaMetin Alanından SayılartoStringAsFixed ile Ondalık SayılarKendi başına pratik yap: Online Flutter derleyicisi