|
|
|
จุดทศนิยม - ไม่รู้จะเริ่มยังงัย คำนวณค่าออกได้ 2.348 แต่ต้องการตัดให้เหลือ 2 ตำแหน่ง แต่ไม่มีการปัดขึ้น |
|
|
|
|
|
|
|
หาคำสั่ง ตัดคำครับ
ตัวอย่าง
Code (PHP)
<?PHP
$text = ?http://www.sadung.com?;
print substr($text,11,10);
?>
ผลที่ได้คือ
sadung.com
เลข 11 จะเป็นตำแหน่งเริ่มต้นของตัวอักษรที่ต้องการตัด จะมีค่าเป็น + หรือ - ก็ได้ อักษรที่นับตัวแรกจะเป็น 0
ส่วนเลข 10 เป็นจำนวนตัวอักษรที่ต้องการตัด มีค่าเป็น +หรือ -ก็ได้ จะรุบุหรือไม่ก็ได้ถ้าไม่ระบุจะจะเป็นการตัดตั้งแต่ต่ำแหน่งเริ่มต้นถึงต่ำแหน่งสุดท้ายของข้อความ ถ้าใส่เป็น - จะทำการตัดตัวอักษรนับตั้งแต่ตัวสุดท้ายเข้ามา
ลองดูนะ
|
|
|
|
|
Date :
2009-03-12 22:01:22 |
By :
khunset |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณสำหรับคำตอบของคุณ khunset
แต่ถ้าใช้คำสั่งตัดคำ กรณีที่ เป็น 2.00 มันก็จะแสดงผลแค่ 2 ไม่มีจุดทศนิยม ซึ่งมันไม่ใช่ตัวที่ต้องการจิง ๆ อ่ะ
|
|
|
|
|
Date :
2009-03-12 22:21:06 |
By :
binna |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัดแล้ว ใช้ number_format($xxx,2) ครับ
ผมไม่รู้จริงๆ ใช้ฟังก์ชันไหนถึงจะไม่ปัด ใครรู้บอกผมด้วยคน เพราะไม่จำเป็นต้องใช้สักที
|
|
|
|
|
Date :
2009-03-12 22:23:34 |
By :
plakrim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณคุณ plakrim
วิธีนี้ได้ผลจิง ๆ ด้วย
55555
|
|
|
|
|
Date :
2009-03-12 22:42:28 |
By :
binna |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดู function round() ครับ
|
|
|
|
|
Date :
2009-03-12 23:44:22 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
round(ลาว) มันก็ปัดไม่ใช่หรอพี่วิน หรือมีวิธีใช้ที่เจ๋งๆ สอนน้องด้วย เผื่อมีโอกาสได้ใช้
|
|
|
|
|
Date :
2009-03-13 00:34:30 |
By :
plakrim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ค่อยแน่ใจเหมือนกัน เลยอยากให้ดูครับ
|
|
|
|
|
Date :
2009-03-13 00:38:36 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
round มันปัดทศนิยมตัวสุดท้ายที่เราตัดนี่ครับ
เช่น
Code (PHP)
<?php
round(123.987, 2) = 123.99
round(9999.99999, 2) = 10000.00 # << อันนี้ไม่แน่ใจ
?>
ลองดูนี่ครับ วุ่นวายไปนิดแต่คิดว่าใช้ได้ผล
Code (PHP)
<?php
$value = 123.987; # ค่าของตัวเลข
$rPosition = 2; # จำนวน ทศนิยมที่ต้องการตัดให้เลือ
$round = round($value, $rPosition); #ตัดให้เหลือหลักที่ต้องการ
$result_len = strlen($round); # หาความยาวของ $round
$result_str = substr($value,0,$result_len); # เอามาตัดข้อความดั้งเดิมให้เหลือเท่ากับ $round
$result_int = (double)($result_str); # แปลง ข้อความใหม่ให้เป็น ประเภทเป็นทศนิยม
echo gettype($result_int)." value=".$result_int; # ทดสอบ
?>
|
|
|
|
|
Date :
2009-03-13 01:24:52 |
By :
เด็กชาย กอ ไก่ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<?php
$a="2.348";
$a=sprintf("%.2f",$a);
echo $a;
?>
|
|
|
|
|
Date :
2009-03-13 09:42:26 |
By :
นักเรียน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ความจริงก็ไม่ยากหรอกครับ
Code (PHP)
<?php
$x = 2.348;
$y = 2.000;
function to2PointWithNoRound($num){
$num = strval($num);
$arr = split('\.', $num);
if( count($arr) == 2 )// yes it's float number
return ($arr[0].'.'.substr($arr[1], 0, 2)) + 0;
return $num+0;
}
echo to2PointWithNoRound($x), '<br>';
echo to2PointWithNoRound($y), '<br>';
?>
|
|
|
|
|
Date :
2009-03-13 10:00:12 |
By :
pjgunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ได้มาจาก C ครับ 555 เรพ 9 นั่น ง่ายที่สุดแล้ว
งั้นขอแก้ ฟังชั่นตัวเองหน่อยนะครับ
Code (PHP)
<?php
$x = 2.348;
$y = 2.000;
$z = 4.12344;
function toXPointWithNoRound($num, $point= 2){
$num = strval($num);
$arr = split('\.', $num);
if( count($arr) == 2 )// yes it's float number
return ($arr[0].'.'.substr($arr[1], 0, $point)) + 0;
return $num+0;
}
echo toXPointWithNoRound($x), '<br>';
echo toXPointWithNoRound($y), '<br>';
echo toXPointWithNoRound($z, 3);
?>
|
|
|
|
|
Date :
2009-03-13 10:16:04 |
By :
pjgunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองตัวนี้ดูครับ เพื่อได้
<?
$a = 999998.8899;
$b = substr($a,0,strpos($a,'.')+3);
print $b;
?>
|
|
|
|
|
Date :
2009-03-13 10:29:35 |
By :
นักเรียน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เยี่ยมครับ แต่ติด 00 นิดหน่อยนะ ผมขอแก้หน่อยละกัน(ไม่ว่ากันนะ)
Code (PHP)
<?php
$a = 999998.8899;
$b = substr($a,0,strpos($a,'.')+3)+0;
print $b;
?>
|
|
|
|
|
Date :
2009-03-13 10:34:22 |
By :
pjgunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โทษทีนะครับ ลืมอ่านข้างบน จะเอา 00 ด้วย
ไปแก้ของเค้าเฉย
|
|
|
|
|
Date :
2009-03-13 10:36:16 |
By :
pjgunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<?
$cal = 2.00;
$test = round($cal,2);
echo ">>".number_format($test,2);
?>
บ่ไปกินไปอ้วน
|
|
|
|
|
Date :
2009-03-14 13:21:56 |
By :
teez1232002 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้ว ใน visual studio 2005 ใช้คำสั่ง อะไรคับ....
|
|
|
|
|
Date :
2009-05-19 15:41:31 |
By :
unzenzer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากค่ะ ^^
|
|
|
|
|
Date :
2012-06-18 15:35:52 |
By :
priorincantato |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|