要求用户输入一个十进制数,在c#中显示小数点前有多少位,小数点后有多少位

问题描述 投票:0回答:1

我有一个小数变量类型,想检查小数点前后的位数。

我已经对数字进行了四舍五入并计算了整数的位数,但我不确定如何解决这个问题,我该怎么办?例如345.65应该返回**小数点前3位,小数点后2位**。

c# numbers decimal
1个回答
0
投票

value
变成
string
,找到小数点分隔符(
.IndexOf
)的位置并计算:

using System.Globalization;

...

var value = 345.65;

string text = Math.Abs(value).ToString(CultureInfo.InvariantCulture);

int position = text.IndexOf('.');

int before = position >= 0 ? position : text.Length;
int after = position >= 0 ? text.Length - position - 1: 0;

// Let's have a look        
Console.WriteLine($"{value}, before: {before}, after: {after}");

输出:

345.65, before: 3, after: 2

小提琴

© www.soinside.com 2019 - 2024. All rights reserved.