diff --git a/modules/cart/commerce_cart.module b/modules/cart/commerce_cart.module
index afa14dd..04e66a4 100644
--- a/modules/cart/commerce_cart.module
+++ b/modules/cart/commerce_cart.module
@@ -1415,7 +1415,7 @@ function commerce_cart_forms($form_id, $args) {
  * @return
  *   The form array.
  */
-function commerce_cart_add_to_cart_form($form, &$form_state, $line_item, $show_quantity = FALSE, $context = array()) {
+function commerce_cart_add_to_cart_form($form, &$form_state, $line_item, $show_quantity = FALSE, $quantity_type = 'integer', $context = array()) {
   global $user;
 
   // Store the context in the form state for use during AJAX refreshes.
@@ -1852,7 +1852,7 @@ function commerce_cart_add_to_cart_form($form, &$form_state, $line_item, $show_q
         '#type' => 'textfield',
         '#title' => t('Quantity'),
         '#default_value' => $default_quantity,
-        '#datatype' => 'integer',
+        '#datatype' => $quantity_type,
         '#size' => 5,
         '#weight' => 45,
       );
@@ -1861,7 +1861,7 @@ function commerce_cart_add_to_cart_form($form, &$form_state, $line_item, $show_q
       $form['quantity'] = array(
         '#type' => 'hidden',
         '#value' => $default_quantity,
-        '#datatype' => 'integer',
+        '#datatype' => $quantity_type,
         '#weight' => 45,
       );
     }
@@ -2113,6 +2113,7 @@ function commerce_cart_field_formatter_info() {
       'settings' => array(
         'show_quantity' => FALSE,
         'default_quantity' => 1,
+        'quantity_decimal_enable' => FALSE,
         'combine' => TRUE,
         'show_single_product_attributes' => FALSE,
         'line_item_type' => 'product',
@@ -2145,6 +2146,12 @@ function commerce_cart_field_formatter_settings_form($field, $instance, $view_mo
       '#size' => 16,
     );
 
+    $element['quantity_decimal_enable'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Allow decimal values'),
+      '#default_value' => $settings['quantity_decimal_enable'], 
+    );
+
     $element['combine'] = array(
       '#type' => 'checkbox',
       '#title' => t('Attempt to combine like products on the same line item in the cart.'),
@@ -2203,6 +2210,7 @@ function commerce_cart_field_formatter_settings_summary($field, $instance, $view
     $summary = array(
       t('Quantity widget: !status', array('!status' => $settings['show_quantity'] ? t('Enabled') : t('Disabled'))),
       t('Default quantity: @quantity', array('@quantity' => $settings['default_quantity'])),
+      t('Quantity Type: @quantity_type', array('@quantity_type' => isset($settings['quantity_decimal_enable']) ? t('Decimal') : t('Integer'))),
       t('Combine like items: !status', array('!status' => $settings['combine'] ? t('Enabled') : t('Disabled'))),
       t('!visibility attributes on single product forms.', array('!visibility' => $settings['show_single_product_attributes'] ? t('Showing') : t('Hiding'))),
     );
@@ -2246,6 +2254,7 @@ function commerce_cart_field_formatter_view($entity_type, $entity, $field, $inst
           'form_id' => commerce_cart_add_to_cart_form_id($product_ids),
           'line_item' => $line_item,
           'show_quantity' => $settings['show_quantity'],
+          'quantity_type' => isset($settings['quantity_decimal_enable']) ? 'decimal' : 'integer',
         ),
       );
     }
diff --git a/modules/line_item/includes/views/handlers/commerce_line_item_handler_field_edit_quantity.inc b/modules/line_item/includes/views/handlers/commerce_line_item_handler_field_edit_quantity.inc
index e6b0d70..b83ac1e 100644
--- a/modules/line_item/includes/views/handlers/commerce_line_item_handler_field_edit_quantity.inc
+++ b/modules/line_item/includes/views/handlers/commerce_line_item_handler_field_edit_quantity.inc
@@ -42,11 +42,10 @@ class commerce_line_item_handler_field_edit_quantity extends views_handler_field
     foreach ($this->view->result as $row_id => $row) {
       $line_item_id = $this->get_value($row, 'line_item_id');
       $quantity = $this->get_value($row, 'quantity');
-
       $form[$this->options['id']][$row_id] = array(
         '#type' => 'textfield',
-        '#datatype' => 'integer',
-        '#default_value' => round($quantity),
+        '#datatype' => !$this->options['decimal_enable'] ? 'integer' : 'decimal',
+        '#default_value' => !$this->options['decimal_enable'] ? round($quantity) : $quantity,
         '#size' => 4,
         '#maxlength' => max(4, strlen($quantity)),
         '#line_item_id' => $line_item_id,
@@ -96,4 +95,20 @@ class commerce_line_item_handler_field_edit_quantity extends views_handler_field
       }
     }
   }
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['decimal_enable'] = array(
+      'default' => FALSE,
+      'bool' => TRUE,
+    );
+    return $options;
+  } 
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['decimal_enable'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Allow decimal values'),
+      '#default_value' => $this->options['decimal_enable'], 
+    );
+  }
 }
