一文解析PHP元转分的错误示范(附代码实例)

本篇文章给大家带来了关于php的相关知识,其中主要介绍了通过PHP进行金额(元转分)的互相转化出现的错误,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

图片[1]-一文解析PHP元转分的错误示范(附代码实例)-蜜桃源碼

php 元转分的错误示范

说明

一旦进行金额的互相转化,就非常容易发生错误。所以写个文章记录下来。

错误主要的原因就是内部是浮点数变量。

有兴趣的同学可以试试。

错误的示范。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

$price=20.08;

echo yuan_to_fen($price);

 

function yuan_to_fen($price)

{

  return intval(100 * $price);

}

 

function yuan_to_fen2($price)

{

  return floor(100 * $price);

}

function yuan_to_fen3($price)

{

  return (int)(100 * $price);

}

正确的示范

1

2

3

4

5

6

7

$price=20.08;

echo yuan_to_fen($price);

 

function yuan_to_fen($price)

{

  return round(100 * $price);

}

汇总

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

<?php

$a = 20.08;

$b = yuan_to_fen1($a);

$c = yuan_to_fen2($a);

$d = yuan_to_fen3($a);

$e = yuan_to_fen4($a);

 

$x = yuan_to_fen31($a);

$y = yuan_to_fen32($a);

$z = yuan_to_fen33($a);

 

echo('价格=' $b "\n");//2007

echo('价格2=' $c "\n");//2007

echo('价格3=' $d "\n");//2007

echo('价格4=' $e "\n");//2008

 

echo('方法31=' $x "\n");//2008

echo('方法32=' $y "\n");//2008

echo('方法33=' $z "\n");//2008

 

function yuan_to_fen1($price)

{

  return intval(100 * $price);

}

 

function yuan_to_fen2($price)

{

  return floor(100 * $price);

}

 

function yuan_to_fen3($price)

{

  return (int)(100 * $price);

}

 

function yuan_to_fen4($price)

{

  return 100 * $price;

}

 

function yuan_to_fen31($price)

{

  return intval(strval(100 * $price));

}

 

function yuan_to_fen32($price)

{

  //返回浮点数。

  return round(100 * $price);

}

 

function yuan_to_fen33($price)

{

  //返回整型,比较推荐这种。

  return intval(round(100 * $price));

}

 

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明

THE END
喜欢就支持一下吧
点赞73 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码

    暂无评论内容