我有一个十进制格式的API,如89.9999,我已经使用了固定并四舍五入到89.90。但问题是如果我得到90的值,因为toFixed它显示为90.00,因为我只需要90.有没有办法实现这个?
我尝试进行基本计算的代码是:
(...) new MeterDTO(m.id, m.trans_ratio, g.kart.lsk (...)
答案 0 :(得分:2)
如果值是小数,您可以使用模%
来检测,所以您可以像下面这样进行
var value = n % 1 !== 0 ? n.toFixed(2) : n;
答案 1 :(得分:1)
您可以使用Integer%1
每当我们使用
0
时,如果我们使用Float%1
,它将返回0.####
,它将返回一些点值,如function setToFixed(v) { console.log(v % 1 ? v.toFixed(2) : v) } setToFixed(90) setToFixed(89.7589999)
。
<强>样本强>
.as-console-wrapper { max-height: 100% !important; top: 0; }
{{1}}
答案 2 :(得分:0)
在slice
后使用toFixed
删除跟踪.00
(如果存在):
const getPerc = num => {
const str = num.toFixed(2);
if (str.slice(-2) === '00') return str.slice(0, str.length - 3);
return str;
}
console.log(getPerc(90));
console.log(getPerc(89.9999));
console.log(getPerc(89.55));
&#13;
答案 3 :(得分:0)
您可以尝试:
<ItemsControl ItemsSource="{Binding Foos}" Grid.Column="0">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Tag="{Binding FooName}" Click="SelectFoo" Cursor="Hand">
<Image Height="100" Width="100" Source="{Binding ImageUrl}"/>
<Button.Template>
<ControlTemplate TargetType="Button">
<Border BorderThickness="1" CornerRadius="3">
<ContentPresenter
Margin="1"
HorizontalAlignment="Center"
VerticalAlignment="Center"
RecognizesAccessKey="True"/>
<Border.Style>
<Style TargetType="Border">
<Setter Property="Background" Value="#292929"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="Firebrick"/>
</Trigger>
<DataTrigger Binding="{Binding IsSelected}" Value="True">
<Setter Property="BorderBrush" Value="Firebrick" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>