Hướng dẫn php check is float - kiểm tra php là float

Câu trả lời của Artefacto cũng sẽ chuyển đổi số float

   if(floatval($num)){
         $this->print_half_star();
    }
0 thành số nguyên
   if(floatval($num)){
         $this->print_half_star();
    }
1. Nếu điều đó làm phiền bạn thích nó đang làm phiền tôi, tôi sẽ đưa ra câu trả lời về chuyển đổi loại tự động thông qua toán tử nhân:

Nội phân Chính showShow

  • Không phải là câu trả lời bạn đang tìm kiếm? Duyệt các câu hỏi khác được gắn thẻ PHP hoặc đặt câu hỏi của riêng bạn.
  • Làm thế nào để kiểm tra xem chuỗi là số nguyên hoặc float trong PHP?
  • Làm thế nào để bạn kiểm tra xem một chuỗi là một PHP số nguyên?
  • Làm thế nào để bạn kiểm tra xem giá trị có phải là số nguyên trong PHP không?
  • Làm thế nào để bạn kiểm tra xem một số có nổi hay không?

Nếu một trong hai toán hạng là một chiếc phao, thì cả hai toán hạng được đánh giá là phao, và kết quả sẽ là một chiếc phao. Nếu không, các toán hạng sẽ được hiểu là INT, và kết quả cũng sẽ là một int.

$demo = array(
    1, 2, 3, '1', '2', '3', 
    1.0, 2.1, 3.2, '1.0', '2.1', '3.2', 
    -17, '-17', 
    -1.0, -2.2, '-1.0', '-2.2',
    0, '0', -0, '-0',
    0.0, '0.0', -0.0, '-0.0',
);

foreach ($demo as $k => $v) {
    if (is_numeric($v) && is_string($v)) {
        $demo[$k] = 1 * $v;
    }
}

echo "
"; var_dump($demo); echo "
"; array(26) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(1) [4]=> int(2) [5]=> int(3) [6]=> float(1) [7]=> float(2.1) [8]=> float(3.2) [9]=> float(1) [10]=> float(2.1) [11]=> float(3.2) [12]=> int(-17) [13]=> int(-17) [14]=> float(-1) [15]=> float(-2.2) [16]=> float(-1) [17]=> float(-2.2) [18]=> int(0) [19]=> int(0) [20]=> int(0) [21]=> int(0) [22]=> float(0) [23]=> float(0) [24]=> float(-0) [25]=> float(-0) }

Tôi đang cố gắng kiểm tra PHP nếu một chuỗi là gấp đôi hay không.

Đây là mã của tôi:

   if(floatval($num)){
         $this->print_half_star();
    }

$ num là một chuỗi .. vấn đề là ngay cả khi có một int nó cho đúng. Có cách nào để kiểm tra xem nó có phải là một chiếc phao chứ không phải INT !?

Hỏi ngày 7 tháng 8 năm 2012 lúc 15:54Aug 7, 2012 at 15:54

1

// Try to convert the string to a float
$floatVal = floatval($num);
// If the parsing succeeded and the value is not equivalent to an int
if($floatVal && intval($floatVal) != $floatVal)
{
    // $num is a float
}

Đã trả lời ngày 7 tháng 8 năm 2012 lúc 16:02Aug 7, 2012 at 16:02

Hướng dẫn php check is float - kiểm tra php là float

4

Điều này sẽ bỏ qua các giá trị số nguyên được biểu thị dưới dạng chuỗi:

if(is_numeric($num) && strpos($num, ".") !== false)
{
    $this->print_half_star();
}

Đã trả lời ngày 7 tháng 8 năm 2012 lúc 16:01Aug 7, 2012 at 16:01

JK.JK.JK.

5.0861 Huy hiệu vàng26 Huy hiệu bạc26 Huy hiệu đồng1 gold badge26 silver badges26 bronze badges

1

Bạn có thể thử điều này:

function isfloat($num) {
    return is_float($num) || is_numeric($num) && ((float) $num != (int) $num);
}

var_dump(isfloat(10));     // bool(false)
var_dump(isfloat(10.5));   // bool(true)
var_dump(isfloat("10"));   // bool(false)
var_dump(isfloat("10.5")); // bool(true)

Đã trả lời ngày 7 tháng 8 năm 2012 lúc 16:02Aug 7, 2012 at 16:02

Điều này sẽ bỏ qua các giá trị số nguyên được biểu thị dưới dạng chuỗi:Florent

Đã trả lời ngày 7 tháng 8 năm 2012 lúc 16:0110 gold badges46 silver badges58 bronze badges

1

5.0861 Huy hiệu vàng26 Huy hiệu bạc26 Huy hiệu đồng

if(is_numeric($val) && stripos($val,'.') !== false)
{
    //definitely a float
}

Bạn có thể thử điều này:

FlorentflorentNov 28, 2018 at 19:27

12.3k10 Huy hiệu vàng46 Huy hiệu bạc58 Huy hiệu Đồng

Bạn chỉ có thể kiểm tra xem giá trị có phải là số không, sau đó kiểm tra một điểm thập phân, vì vậy ...Aug 7, 2012 at 16:03

Nó không xử lý tốt ký hiệu khoa học lắm, vì vậy bạn có thể phải xử lý thủ công đó bằng cách tìm kiếm

   if(floatval($num)){
         $this->print_half_star();
    }
2ARIF MAHMUD RANA

Đã trả lời ngày 28 tháng 11 năm 2018 lúc 19:273 gold badges30 silver badges54 bronze badges

2

Tại sao không sử dụng phép thuật của biểu thức chính quy

Đã trả lời ngày 7 tháng 8 năm 2012 lúc 16:03

function check_double_string($str){
 $pairs = explode('.',$str);
 if ( is_array($pairs) && count($pairs)==2) {
   return ( is_numeric($pairs[0]) && is_numeric($pairs[1])? true : false; 
 }
 return false;
}

Arif Mahmud Ranaarif Mahmud RanaAug 7, 2012 at 16:05

voodoo417voodoo417voodoo417

4.8553 Huy hiệu vàng30 Huy hiệu bạc54 Huy hiệu Đồng3 gold badges34 silver badges39 bronze badges

1

Nếu "định dạng chuỗi đôi" như "xxxxxx.xxxxxx" này

$num='17.000010';
$num_float = (float)$num; //$num_float is now 17.00001  
//add the zero's back to $num_float
while (strlen ($num) > strlen ($num_float))  $num_float = $num_float . '0';   //$spot_float in now a string again


if($num_float != $num) then $num was no double :;

Hãy thử kiểm tra

Đã trả lời ngày 7 tháng 8 năm 2012 lúc 16:05Apr 20, 2016 at 21:34

11.7K3 Huy hiệu vàng34 Huy hiệu bạc39 Huy hiệu đồng

/**
 * Determines if a variable appears to be a float or not.
 *
 * @param string|int|double $number
 * @return bool True if it appears to be an integer value. "75.0000" returns false.
 * @throws InvalidArgumentException if $number is not a valid number.
 */
function isFloatLike($number): bool
{
    // Bail if it isn't even a number.
    if (!is_numeric($number)) {
        throw new InvalidArgumentException("'$number' is not a valid number.");
    }

    // Try to convert the variable to a float.
    $floatVal = floatval($number);

    // If the parsing succeeded and the value is not equivalent to an int, 
    return ($floatVal && intval($floatVal) != $floatVal);
}

Để có được tất cả các trường hợp nổi, chúng tôi phải thêm bất kỳ số 0 nào trở lại vào cuối có thể bị cắt giảm bởi

   if(floatval($num)){
         $this->print_half_star();
    }
3 hoặc bằng cách đánh máy
   if(floatval($num)){
         $this->print_half_star();
    }
4Apr 10, 2019 at 4:34

Lưu ý

   if(floatval($num)){
         $this->print_half_star();
    }
5 không được sử dụng chỉ trong trường hợp
   if(floatval($num)){
         $this->print_half_star();
    }
6 không bao giờ được chuyển đổi thành một chuỗi bằng cách thêm các số 0. Đó sẽ là trường hợp cho các giá trị không kết thúc trong 0.Theodore R. Smith

Đã trả lời ngày 20 tháng 4 năm 2016 lúc 21:3412 gold badges60 silver badges89 bronze badges

Không phải là câu trả lời bạn đang tìm kiếm? Duyệt các câu hỏi khác được gắn thẻ PHP hoặc đặt câu hỏi của riêng bạn.

Làm thế nào để kiểm tra xem chuỗi là số nguyên hoặc float trong PHP?

Đây là những gì tôi đã tạo ra, cho PHP hiện đại:is_float() function checks whether a variable is of type float or not. This function returns true (1) if the variable is of type float, otherwise it returns false.

Làm thế nào để bạn kiểm tra xem một chuỗi là một PHP số nguyên?

Làm thế nào để bạn kiểm tra xem giá trị có phải là số nguyên trong PHP không?is_numeric() function checks whether a variable is a number or a numeric string. This function returns true (1) if the variable is a number or a numeric string, otherwise it returns false/nothing.

Làm thế nào để bạn kiểm tra xem giá trị có phải là số nguyên trong PHP không?

Làm thế nào để bạn kiểm tra xem một số có nổi hay không?is_int() function checks whether a variable is of type integer or not. This function returns true (1) if the variable is of type integer, otherwise it returns false.

Làm thế nào để bạn kiểm tra xem một số có nổi hay không?

Nếu một trong hai toán hạng là một chiếc phao, thì cả hai toán hạng được đánh giá là phao, và kết quả sẽ là một chiếc phao. Nếu không, các toán hạng sẽ được hiểu là INT, và kết quả cũng sẽ là một int..

Tôi đang cố gắng kiểm tra PHP nếu một chuỗi là gấp đôi hay không.

Đây là mã của tôi:

$ num là một chuỗi .. vấn đề là ngay cả khi có một int nó cho đúng. Có cách nào để kiểm tra xem nó có phải là một chiếc phao chứ không phải INT !?

Hỏi ngày 7 tháng 8 năm 2012 lúc 15:54