将double拆分为两个int,小数点前一个int,后一个int

Sco*_*ker 16 c# double int decimal-point

我需要将一个double值拆分为两个int值,一个在小数点之前,一个在after之后.小数点后的int应该有两位数.

例:

    10.50 = 10 and 50
    10.45 = 10 and 45
    10.5  = 10 and 50
Run Code Online (Sandbox Code Playgroud)

Hen*_*man 24

这是你如何做到的:

string s = inputValue.ToString("0.00", CultureInfo.InvariantCulture);
string[] parts = s.Split('.'); 
int i1 = int.Parse(parts[0]);
int i2 = int.Parse(parts[1]);
Run Code Online (Sandbox Code Playgroud)


小智 17

操纵字符串可能很慢.尝试使用以下内容:

double number;

long intPart = (long) number;
double fractionalPart = number - intPart;
Run Code Online (Sandbox Code Playgroud)

  • 它可能有所帮助,但它回答了一个不同的问题.`fractionalPart`是`0.xxxx ...`,而不是`xx`. (3认同)
  • 请注意,这会在某些条件下导致精度问题.即55.55将分为55和.549999999997.字符串转换会更昂贵,但有助于保持您的号码完整性. (3认同)

小智 7

你想用什么编程语言来做这件事?大多数语言都应该有Modulo运算符.C++示例:

double num = 10.5;
int remainder = num % 1
Run Code Online (Sandbox Code Playgroud)