如何在飞镖中获得小数部分

Ker*_*mit 4 dart flutter

有没有办法打印出双精度的小数部分,

我的双号,

4734.602654867
Run Code Online (Sandbox Code Playgroud)

我只想要6026它。

Jig*_*tel 9

有一个truncate()double 类型的函数,它返回整数部分,丢弃小数部分。我们可以从原始双精度数中减去它以获得分数。

double myDouble = 4734.602654867;
double fraction = myDouble - myDouble.truncate();
print(fraction);                                   // --> prints 0.602654867
Run Code Online (Sandbox Code Playgroud)

编辑: 如果我们想要小数部分中的 4 位数字,我们可以这样做..

int result = (fraction*10000).truncate();  
print(result);                                    // --> prints 6026
Run Code Online (Sandbox Code Playgroud)

要完成所有这一行,我们可以这样做..

int result = ((myDouble - myDouble.truncate())*10000).truncate(); // <-- 6026
Run Code Online (Sandbox Code Playgroud)


Osh*_*404 5

就像是

import 'dart:math' show pow;
var number = 4734.602654867;
var wantedDigits = 4;
var fraction = (number % 1 * pow(10, wantedDigits)).floor();
print(fraction);
Run Code Online (Sandbox Code Playgroud)

应该管用。

飞镖板示例


sri*_*785 5

你可以使用split()

像这样..


var s = 4734.602654867;
var a = s.toString().split('.')[1]. substring(0,4); // here a = 6026

Run Code Online (Sandbox Code Playgroud)

希望它能解决您的问题..